home *** CD-ROM | disk | FTP | other *** search
- ;; unicode.mim -- Input method for Unicode characters by typing character code
- ;; Copyright (C) 2003, 2004
- ;; National Institute of Advanced Industrial Science and Technology (AIST)
- ;; Registration Number H15PRO112
-
- ;; This file is part of the m17n database; a sub-part of the m17n
- ;; library.
-
- ;; The m17n library is free software; you can redistribute it and/or
- ;; modify it under the terms of the GNU Lesser General Public License
- ;; as published by the Free Software Foundation; either version 2.1 of
- ;; the License, or (at your option) any later version.
-
- ;; The m17n library is distributed in the hope that it will be useful,
- ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
- ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- ;; Lesser General Public License for more details.
-
- ;; You should have received a copy of the GNU Lesser General Public
- ;; License along with the m17n library; if not, write to the Free
- ;; Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- ;; Boston, MA 02110-1301, USA.
-
- (input-method t unicode)
-
- (description (_"Input method for Unicode BMP characters using hexadigits.
- Type C-u followed by four hexadecimal numbers [0-9A-Fa-f]
- of a Unicode character code.
- "))
-
- (variable
- (prompt (_"Preedit prompt
- Prompt string shown in the preedit area while typing hexadecimal numbers.")
- "U+"))
- (command
- (start (_"Start Unicode
- Start typing hexadecimal numbers of Unicode character.")
- (C-U)))
-
- (title "UNICODE")
-
- (map
- (starter
- (start prompt))
-
- (hex
- ("0" "0") ("1" "1") ("2" "2") ("3" "3") ("4" "4")
- ("5" "5") ("6" "6") ("7" "7") ("8" "8") ("9" "9")
- ("A" "A") ("B" "B") ("C" "C") ("D" "D") ("E" "E") ("F" "F")
- ("a" "A") ("b" "B") ("c" "C") ("d" "D") ("e" "E") ("f" "F"))
-
- (backspace
- ((BackSpace))))
-
- (state
- (init
- (starter (set code 0) (set count 0) (shift uni-hex)))
-
- (uni-hex
- (hex (set this @-1)
- (cond ((< @-1 ?A) (sub this 48))
- (1 (sub this 55)))
- (set code (+ (* code 16) this))
- (set count (+ count 1))
- (cond ((= count 4)
- (delete @<) (insert code) (shift init))))
- (backspace (undo))))
-
- ;; Local Variables:
- ;; mode: lisp
- ;; End:
-